//
//  XFEmotionTextView.m
//  Weibo
//
//  Created by Fay on 15/10/20.
//  Copyright © 2015年 Fay. All rights reserved.
//

#import "XFEmotionTextView.h"
#import "XFEmotion.h"
#import "XFEmotionAttachment.h"
#import "MHCircleUserTag.h"

@implementation XFEmotionTextView

- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        // Initialization code
    }
    return self;
}

-(void)insertEmotion:(XFEmotion *)emotion {
    
    if (emotion.code) {
        // insertText : 将文字插入到光标所在的位置
        [self insertText:emotion.code.emoji];
    } else if (emotion.png) {
        // 加载图片
        XFEmotionAttachment *attch = [[XFEmotionAttachment alloc] init];
        //传递数据
        attch.emotion = emotion;
         // 设置图片的尺寸
        CGFloat attchWH = self.font.lineHeight;
        attch.bounds = CGRectMake(0, -4, attchWH, attchWH);
        
        // 根据附件创建一个属性文字
//        NSAttributedString *imageStr = [NSAttributedString attributedStringWithAttachment:attch];
       
        // 插入属性文字到光标位置
        
        
//        [self insertAttributeText:imageStr];
        
        
        
         [self insertText:emotion.chs];
        
        // 设置字体
//        NSMutableAttributedString *attributedText = (NSMutableAttributedString *)self.attributedText;
//        [attributedText addAttribute:NSFontAttributeName value:self.font range:NSMakeRange(0, attributedText.length)];
        
    }
}

-(void)insertTags:(MHCircleUserTag *)tag
{
   
    [self replaceRange:self.selectedTextRange withText: [NSString stringWithFormat:@"%@ ",tag.tagName]];
    
//    NSDictionary *attrDict = @{ NSFontAttributeName: MHRegularFont_14 , NSForegroundColorAttributeName: MHColorFromHexString(@"#4BAC6A")};
//
//    NSAttributedString *tagStr = [[NSAttributedString alloc] initWithString:tag.tagName attributes:attrDict];
//
//    [self insertAttributeText:tagStr];
}

//-(void)insertEmotion:(m *)emotion

- (NSString *)fullText
{
//     NSString *string = [self.text stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
//
//    NSString *uniStr = [NSString stringWithUTF8String:[self.text UTF8String]];
//    NSData *uniData = [uniStr dataUsingEncoding:NSNonLossyASCIIStringEncoding];
//    NSString *goodStr = [[NSString alloc] initWithData:uniData encoding:NSUTF8StringEncoding] ;
//    NSLog(@"---编码--->[%@]",goodStr);
//
//    const char *jsonString = [goodStr UTF8String];   // goodStr 服务器返回的 json
//    NSData *jsonData = [NSData dataWithBytes:jsonString length:strlen(jsonString)];
//    NSString *goodMsg1 = [[NSString alloc] initWithData:jsonData encoding:NSNonLossyASCIIStringEncoding];
//    NSLog(@"---解码--->[%@]",goodMsg1);
    
    

//    return string;
    return self.text;
//    NSMutableString *fullText = [NSMutableString string];
//
//    // 遍历所有的属性文字（图片、emoji、普通文字）
//    [self.attributedText enumerateAttributesInRange:NSMakeRange(0, self.attributedText.length) options:0 usingBlock:^(NSDictionary *attrs, NSRange range, BOOL *stop) {
//        // 如果是图片表情
//        XFEmotionAttachment *attch = attrs[@"NSAttachment"];
//
//        if (attch) { // 图片
//            [fullText appendString:attch.emotion.chs];
//        } else { // emoji、普通文本
//            // 获得这个范围内的文字
//            NSAttributedString *str = [self.attributedText attributedSubstringFromRange:range];
//            [fullText appendString:str.string];
//        }
//    }];
//
//    return fullText;
}



/**
 selectedRange :
 1.本来是用来控制textView的文字选中范围
 2.如果selectedRange.length为0，selectedRange.location就是textView的光标位置
 
 关于textView文字的字体
 1.如果是普通文字（text），文字大小由textView.font控制
 2.如果是属性文字（attributedText），文字大小不受textView.font控制，应该利用NSMutableAttributedString的- (void)addAttribute:(NSString *)name value:(id)value range:(NSRange)range;方法设置字体
 **/

@end
// 版权属于原作者
// http://code4app.com (cn) http://code4app.net (en)
// 发布代码于最专业的源码分享网站: Code4App.com
